/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package olimpus.per;

import olimpus.obj.ValorMesSueldosPersonal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Leonardo
 */
public class ValorMesSueldosPersonalPer
{  
   public static ValorMesSueldosPersonal obtenerValorMesSueldosPersonal(Connection con, String xCiPersona, long xIdSueldo, String xAaaamm) throws Exception
   {
        ValorMesSueldosPersonal objValorMesSueldosPersonal = new ValorMesSueldosPersonal();

        try
        {
            PreparedStatement st=con.prepareStatement("select * " +
                                                       "from VALOR_MES_SUELDOS_PERSONAL "+
                                                         "where CI_PERSONA=? and "+
                                                         " ID_SUELDO=? and "+
                                                         "AAAAMM=? ");
            st.setString(1, xCiPersona);
            st.setLong(2, xIdSueldo);
            st.setString(3, xAaaamm);

            ResultSet resultado = st.executeQuery();

            if(resultado.next())
            {
                objValorMesSueldosPersonal.setCiPersona(resultado.getString("CI_PERSONA"));
                objValorMesSueldosPersonal.setIdSueldo(resultado.getLong("ID_SUELDO"));
                objValorMesSueldosPersonal.setAaaamm(resultado.getString("AAAAMM"));
                objValorMesSueldosPersonal.setFecha(resultado.getString("FECHA"));
                objValorMesSueldosPersonal.setValor(resultado.getDouble("VALOR"));
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return objValorMesSueldosPersonal;
   }

   public static boolean existeValorMesSueldosPersonal(Connection con, String xCiPersona, long xIdSueldo, String xAaaamm) throws Exception
   {
        try
        {
            PreparedStatement st=con.prepareStatement("select count(*) as EXISTE " +
                                                      "from VALOR_MES_SUELDOS_PERSONAL " +
                                                         "where CI_PERSONA=? and "+
                                                         " ID_SUELDO=? and "+
                                                         "AAAAMM=? ");

            st.setString(1, xCiPersona);
            st.setLong(2, xIdSueldo);
            st.setString(3, xAaaamm);

            ResultSet resultado = st.executeQuery();

            if (resultado.next())
            {
                if (resultado.getInt("EXISTE")==0)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return false;
   }

   public static ArrayList<ValorMesSueldosPersonal> obtenerColeccionValorMesSueldosPersonal(Connection con) throws Exception
   {
        ArrayList colValorMesSueldosPersonal = new ArrayList();

        try
        {
            PreparedStatement st=con.prepareStatement("select * " +
                                                      "from VALOR_MES_SUELDOS_PERSONAL");

            ResultSet resultado = st.executeQuery();

            while (resultado.next())
            {
                ValorMesSueldosPersonal objValorMesSueldosPersonal = new ValorMesSueldosPersonal();

                objValorMesSueldosPersonal.setCiPersona(resultado.getString("CI_PERSONA"));
                objValorMesSueldosPersonal.setIdSueldo(resultado.getLong("ID_SUELDO"));
                objValorMesSueldosPersonal.setAaaamm(resultado.getString("AAAAMM"));
                objValorMesSueldosPersonal.setFecha(resultado.getString("FECHA"));
                objValorMesSueldosPersonal.setValor(resultado.getDouble("VALOR"));

                colValorMesSueldosPersonal.add(objValorMesSueldosPersonal);
            }
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
        return colValorMesSueldosPersonal;
    }

    public static void altaValorMesSueldosPersonal(Connection con, ValorMesSueldosPersonal xObjValorMesSueldosPersonal) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement("insert into VALOR_MES_SUELDOS_PERSONAL " +
                                                      "values (?,?,?,?,?)");

            st.setString(1, xObjValorMesSueldosPersonal.getCiPersona());
            st.setLong(2, xObjValorMesSueldosPersonal.getIdSueldo());
            st.setString(3, xObjValorMesSueldosPersonal.getAaaamm());
            st.setString(4, xObjValorMesSueldosPersonal.getFecha());
            st.setDouble(5, xObjValorMesSueldosPersonal.getValor());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }

    public static void bajaValorMesSueldosPersonal(Connection con, ValorMesSueldosPersonal xObjValorMesSueldosPersonal) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement("delete from VALOR_MES_SUELDOS_PERSONAL " +
                                                         "where CI_PERSONA=? and "+
                                                         " ID_SUELDO=? and "+
                                                         "AAAAMM=? ");

            st.setString(1, xObjValorMesSueldosPersonal.getCiPersona());
            st.setLong(2, xObjValorMesSueldosPersonal.getIdSueldo());
            st.setString(3, xObjValorMesSueldosPersonal.getAaaamm());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }

    public static void modificaValorMesSueldosPersonal(Connection con, ValorMesSueldosPersonal xObjValorMesSueldosPersonal) throws Exception
    {
        try
        {
            PreparedStatement st=con.prepareStatement("update VALOR_MES_SUELDOS_PERSONAL " +
                                                      "set FECHA=?, "+
                                                      "VALOR=? "+
                                                         "where CI_PERSONA=? and "+
                                                         " ID_SUELDO=? and "+
                                                         "AAAAMM=? ");

            st.setString(1, xObjValorMesSueldosPersonal.getFecha());
            st.setDouble(2, xObjValorMesSueldosPersonal.getValor());
            st.setString(3, xObjValorMesSueldosPersonal.getCiPersona());
            st.setLong(4, xObjValorMesSueldosPersonal.getIdSueldo());
            st.setString(5, xObjValorMesSueldosPersonal.getAaaamm());

            st.executeUpdate();
        }
        catch (SQLException ex)
        {
            throw new Exception("Persistencia--> " + ex.getMessage());
        }
    }
}
